Manipulator and method for controlling thereof

ABSTRACT

A manipulator and a method for controlling the manipulator are disclosed. The manipulator includes: a plurality of links respectively corresponding to a user’s upper arm, fore arm, and hand, a plurality of motors rotating the plurality of links, a communication interface comprising communication circuitry, a memory storing at least one instruction, and a processor configured to execute the at least one instruction, wherein the processor is configured to: based on first rotation angle information for motors corresponding to the upper arm and the fore arm among the plurality of motors, obtain information for a body frame of a link corresponding to the fore arm, obtain equilibrium angle information that positions the body frame in equilibrium with a specified reference frame, based on receiving a sensing value indicating the posture of the hand from an external sensor through the communication interface, obtain second rotation angle information for motors corresponding to the hand among the plurality of motors based on the sensing value and the equilibrium angle information, and control the motors corresponding to the hand based on the second rotation angle information.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of International Application No.PCT/KR2022/009633 designating the United States, filed on Jul. 5, 2022,in the Korean Intellectual Property Receiving Office and claimingpriority to Korean Patent Application No. 10-2021-0095697, filed on Jul.21, 2021, in the Korean Intellectual Property Office and Korean PatentApplication No. 10-2022-0002833, filed on Jan. 7, 2022, in the KoreanIntellectual Property Office, the disclosures of all of which areincorporated by reference herein in their entireties.

BACKGROUND 1. Field

The disclosure relates to a manipulator and a method for controllingthereof, and for example, to a manipulator that follows a movement of auser’s arm, and a method for controlling thereof.

2. Description of Related Art

Recently, spurred by the development of robot technologies, varioustypes of robots such as a cleaning robot, a service robot, an industrialrobot, etc. are being used. Also, recently, research for a robot armthat follows a movement of a user’s (e.g., a person’s) arm, amanipulator, is proceeding actively.

In particular, if a manipulator can follow a movement of a user’s armquickly and intuitively, the manipulator can be utilized in variousapplied fields, such as doing shopping instead of the user, organizinggoods in a shopping mall instead of the user, cooking in a home, orgiving a massage, etc. Other than the above, a manipulator can be widelyused in fields such as logistics, medical care, education, etc., andfields wherein non-face-to-face/non-contact are required depending oninfectious diseases, etc.

A conventional manipulator determined a location and a posture of auser’s arm using a visual sensor or a wireless signal. For this, in aconventional manipulator, a camera or an additional equipment having afunction of a wireless signal transmitter/receiver had to be installed,and this directly led to the rise of the manufacturing cost of themanipulator. In a conventional manipulator, links were not mapped withlinks of a user’s arm one to one, and thus the manipulator could notcorrectly follow the user’s movement.

Accordingly, there is a rising need for a manipulator that can correctlyfollow a movement of a user’s arm without a visual sensor.

According to the conventional technology, a user is made to wear adevice similar to a joint structure of a manipulator, and thus a feelingof fatigue is given to the user when the user uses the device for a longtime, or the user is made to feel inconvenience due to limitation on anaction range. Also, as a location of a hand of a manipulator iscontrolled using only a location of a user’s hand, limitation thatidentifying and controlling an actual movement of the manipulator on ascreen remotely cannot be performed intuitively is being pointed out.

Accordingly, there is a need for a technology that can improve a user’sconvenience, and control a manipulator more intuitively and elaborately.

According to the conventional technology, a posture of a hand of amanipulator is assumed using quaternion information obtained from asensor installed on a user’s hand, and according to this, a postureerror that occurs according to a movement of a user’s arm may occur.This is because the degree of freedom (DOF) of a manipulator is lessthan the degree of freedom for a movement of a user’s arm, and as pointsthat are consecutively interpreted increase, and as the locationproceeds more from a shoulder (a starting point) to a hand (an endingpoint), posture errors accumulatively increase.

Accordingly, there is a need for a technology that expresses an actualmovement of a user’s hand more correctly by minimizing/reducing postureerrors that occur according to a movement of a user’s arm.

SUMMARY

Embodiments of the disclosure address problems of the conventionaltechnology, and embodiments of the disclosure provide a manipulator thatcan follow a movement of a user’s arm elaborately, and a method forcontrolling the manipulator.

The technical aspects of the disclosure are not limited to the technicaltasks mentioned above, and other technical tasks that were not mentionedwould be clearly understood by those having ordinary skill in thetechnical field to which the disclosure belongs from the descriptionsbelow.

According to an example embodiment of the disclosure, a manipulatorincludes: a plurality of links respectively corresponding to an upperarm, fore arm, and hand, a plurality of motors configured to rotate theplurality of links, a communication interface comprising communicationcircuitry, a memory storing at least one instruction, and a processorconfigured to execute the at least one instruction, wherein theprocessor is configured to: based on first rotation angle informationfor motors corresponding to the upper arm and the fore arm among theplurality of motors, obtain information for a body frame of a linkcorresponding to the fore arm; obtain equilibrium angle information thatconfigured to position the body frame in equilibrium with a specifiedreference frame; based on receiving a sensing value indicating theposture of the hand from an external sensor through the communicationinterface; obtain second rotation angle information for motorscorresponding to the hand among the plurality of motors based on thesensing value and the equilibrium angle information; and control themotors corresponding to the hand based on the second rotation angleinformation.

The processor may be configured to: calculate a frame conversion matrixfor converting the first rotation angle information into a sensing valueindicating the posture of the upper arm and the posture of the fore arm;and obtain information for the body frame corresponding to the fore armbased on the frame conversion matrix.

The equilibrium angle information may include roll equilibrium angleinformation and pitch equilibrium angle information, and the rollequilibrium angle information may indicate an angle that positions asecond axis of the body frame parallel to an xy plane of the referenceframe based on rotating around the body frame based on a first axis ofthe body frame.

The pitch equilibrium angle information may indicate an angle thatpositions a third axis of the body frame to coincide with a z axis ofthe reference frame based on rotating around the body frame based on thesecond axis of the body frame rotated based on the roll equilibriumangle information.

The processor may be configured to: obtain third rotation angleinformation for the motors corresponding to the hand based on thesensing value indicating the posture of the hand; and obtain the secondrotation angle information by compensating the third rotation angleinformation based on the equilibrium angle information.

The plurality of links may include: a first link corresponding to theupper arm, a second link corresponding to the fore arm, and a third linkcorresponding to the hand, and the plurality of motors may include: afirst motor configured to rotate the first link based on the first axis,a second motor configured to rotate the first link based on the secondaxis, a third motor configured to rotate the second link based on thefirst axis, a fourth motor configured to rotate the second link based onthe third axis, a fifth motor configured to rotate the third link basedon the first axis, and a sixth motor configured to rotate the third linkbased on the second axis.

The processor may, based on receiving an instruction for stopping anoperation of a first user while the manipulator is operating, beconfigured to inactivate an external sensor for recognizing the postureof the first user’s arm; and stop the operation of the manipulator,based on receiving an instruction for initiating an operation of asecond user for controlling the manipulator, to control thecommunication interface to transmit information on a guide screen forcompensating a difference between the posture of the manipulator and theposture of the second user’s arm to the user terminal of the seconduser, and based on identifying that the difference between the postureof the manipulator and the posture of the second user’s arm being withina specified threshold range, to control the plurality of motors based onthe posture of the second user’s arm.

The processor may, based on receiving an instruction for initiating arepeating operation of the user, be configured to control the pluralityof motors based on the posture of the user’s arm based on receiving aninstruction for stopping the repeating operation of the user, to store acontrol signal corresponding to the operation of the manipulator fromthe time point the instruction for initiating the repeating operationwas received to the time point the instruction for stopping therepeating operation was received in the memory, based on the controlsignal being stored, to control the communication interface to transmitinformation for the maximum operating speeds of the plurality ofrespective motors corresponding to the control signal to the userterminal of the user, and based on receiving a user input for settingthe operating speed of the manipulator based on the information for themaximum operating speeds, to control the plurality of motors based onthe set operating speed.

According to an example embodiment of the disclosure, a method forcontrolling a manipulator including a plurality of links respectivelycorresponding to an upper arm, fore arm, and hand, and a plurality ofmotors configured to rotate the plurality of links includes: based onfirst rotation angle information for motors corresponding to the upperarm and the fore arm among the plurality of motors, obtaininginformation for a body frame of a link corresponding to the fore arm;obtaining equilibrium angle information that positions the body frame inequilibrium with a specified reference frame; based on receiving asensing value indicating the posture of the hand from an externalsensor, obtaining second rotation angle information for motorscorresponding to the hand among the plurality of motors based on thesensing value and the equilibrium angle information; and controlling themotors corresponding to the hand based on the second rotation angleinformation.

The obtaining information for the body frame may include: calculating aframe conversion matrix for converting the first rotation angleinformation into a sensing value indicating the posture of the upper armand the posture of the fore arm; and obtaining information for the bodyframe corresponding to the fore arm based on the frame conversionmatrix.

The equilibrium angle information may include roll equilibrium angleinformation and pitch equilibrium angle information, and the rollequilibrium angle information may indicate an angle that positions asecond axis of the body frame parallel to an xy plane of the referenceframe in the case of rotating around the body frame based on a firstaxis of the body frame.

The pitch equilibrium angle information may indicate an angle thatpositions a third axis of the body frame to coincide with a z axis ofthe reference frame based on rotating around the body frame based on thesecond axis of the body frame being rotated based on the rollequilibrium angle information.

The obtaining the second rotation angle information may include: theobtaining third rotation angle information for the motors correspondingto the hand based on the sensing value indicating the posture of thehand; and obtaining the second rotation angle information bycompensating the third rotation angle information based on theequilibrium angle information.

The plurality of links may include a first link corresponding to theupper arm, a second link corresponding to the fore arm, and a third linkcorresponding to the hand, and the plurality of motors may include afirst motor configured to rotate the first link based on the first axis,a second motor configured to rotate the first link based on the secondaxis, a third motor configured to rotate the second link based on thefirst axis, a fourth motor configured to rotate the second link based onthe third axis, a fifth motor configured to rotate the third link basedon the first axis, and a sixth motor configured to rotate the third linkbased on the second axis.

According to an example embodiment of the disclosure, a manipulatorincludes: a plurality of links including a first link and a second link,a plurality of motors configured to rotate the plurality of links, acommunication interface including a circuit, a memory storing at leastone instruction, and a processor, wherein the processor is configuredto: receive a sensing value of an external sensor for detecting aposture of a user’s arm through the communication interface, obtain asecond vector corresponding to the posture of the user’s arm based on amatrix obtained based on the sensing value and a first vector prestoredin the memory, obtain posture information of the user’s arm based on thesecond vector, and control the driving of the plurality of motors basedon the posture information of the user’s arm. The processor is furtherconfigured to: obtain a third vector corresponding to the first linkbased on a sensing value of a first external sensor, obtain a fourthvector corresponding to the second link based on a sensing value of asecond external sensor, obtain posture information corresponding to thesecond link based on the third vector and the fourth vector, and controlthe driving of the plurality of motors corresponding to the second linkbased on the posture information corresponding to the second link.

The processor may be configured to obtain a quaternion vectorcorresponding to the posture of the user’s arm by applying the sensingvalue to an Altitude and Heading Reference System (AHRS) algorithmstored in the memory, and obtain the matrix based on the quaternionvector.

The second vector may include a first second vector corresponding to thex axis and a second second vector corresponding to the z axis, and theposture information of the user’s arm may include a roll anglecorresponding to the x axis, a pitch angle corresponding to the y axis,and a yaw angle corresponding to the z axis, and the processor mayobtain a first yaw angle based on the first second vector, obtain asecond yaw angle based on the second second vector, and obtain the yawangle based on the first yaw angle and the second yaw angle.

The processor may be configured to obtain the yaw angle by applyingweights to the first yaw angle and the second yaw angle based on apredefined weight function.

The processor may be configured to: obtain a first matrix based on afirst sensing value corresponding to an initial set posture of theuser’s arm and store the matrix in the memory, and obtain the matrixbased on a second matrix obtained based on a second sensing valuecorresponding to the current posture of the user’s arm and the firstmatrix.

The processor may be configured to: obtain an angle corresponding to thex axis based on the inner product of the third vector and the fourthvector, and obtain an angle corresponding to the z axis based on thecross product of the third vector and the fourth vector.

According to various example embodiments of the disclosure, amanipulator can follow a movement of a user’s arm correctly.Accordingly, user convenience and satisfaction are improved. Amanipulator can operate without a visual sensor, and thus themanufacturing cost of the manipulator can be reduced.

Other than the above, effects that can be obtained or predicted from theembodiments of the disclosure will be directly or implicitly describedin the detailed description for the embodiments. For example, variouseffects according to the embodiments of the disclosure will be describedin the detailed description that will be described below.

BRIEF DESCRIPTION OF THE DRAWINGS

The above and other aspects, features and advantages of certainembodiments of the present disclosure will be more apparent from thefollowing detailed description, taken in conjunction with theaccompanying drawings, in which:

FIG. 1A is a diagram illustrating an example manipulator according tovarious embodiments;

FIG. 1B is a diagram illustrating an example configuration of amanipulator according to various embodiments;

FIG. 2 is a block diagram illustrating an example configuration of amanipulator according to various embodiments;

FIG. 3 is a diagram illustrating frame conversion of a vector accordingto various embodiments;

FIG. 4 is a graph of a weight function according to various embodiments;

FIG. 5 is a diagram illustrating an example method for controllingdriving of a motor according to various embodiments;

FIG. 6 is a diagram illustrating an example method for obtaining asecond angle according to various embodiments;

FIG. 7 is a flowchart illustrating an example method for controlling amanipulator according to various embodiments;

FIG. 8 is a flowchart illustrating an example method for controlling amanipulator according to various embodiments;

FIG. 9 is a diagram illustrating a frame and an example method forobtaining information for a body frame of a link corresponding to a forearm according to various embodiments;

FIG. 10 is a diagram illustrating an example process of obtaining a rollequilibrium angle according to various embodiments;

FIG. 11 is a diagram illustrating an example process of obtaining apitch equilibrium angle according to various embodiments;

FIG. 12 is a flowchart illustrating an example process wherein aplurality of users control a manipulator according to variousembodiments; and

FIG. 13 is a flowchart illustrating an example method of controlling arepeating operation of a manipulator according to various embodiments.

DETAILED DESCRIPTION

Terms used in the disclosure will be described briefly, and thedisclosure will be described in greater detail.

As terms used in the disclosure, general terms that are currently usedwidely were selected as far as possible, in consideration of thefunctions described in the disclosure. However, the terms may varydepending on the intention of those skilled in the art who work in thepertinent field, previous court decisions, or emergence of newtechnologies. In some cases, there may be terms that were arbitrarilyselected, and in such cases, the meaning of the terms will be describedin detail in the relevant descriptions in the disclosure. Accordingly,the terms used in the disclosure should be defined based on the meaningof the terms and the overall content of the disclosure, but not justbased on the names of the terms.

Further, various modifications may be made to the various exampleembodiments of the disclosure, and there may be various embodiments.Accordingly, specific embodiments will be illustrated in drawings, andthe embodiments will be described in detail in the detailed description.However, it should be noted that the various example embodiments are notintended to limit the scope of the disclosure to a specific embodiment,but they should be interpreted to include all modifications,equivalents, or alternatives of the embodiments included in thetechnical scope of the disclosure. In case it is determined that indescribing embodiments, detailed explanation of related knowntechnologies may unnecessarily confuse the gist of the disclosure, thedetailed explanation will be omitted.

Terms such as “first,” “second,” and the like may be used to describevarious elements, but the expressions are not intended to limit theelements. Such terms are used only to distinguish one element fromanother element.

Singular expressions include plural expressions, unless clearlydifferent in context. Further, in the disclosure, terms such as“include” and “consist of” should be construed as designating that thereare such characteristics, numbers, steps, operations, elements,components, or a combination thereof described in the disclosure, butnot as excluding in advance the existence or possibility of adding oneor more of other characteristics, numbers, steps, operations, elements,components, or a combination thereof.

Hereinafter, various example embodiments of the disclosure will bedescribed in greater detail with reference to the accompanying drawings.However, it should be noted that the disclosure may be implemented invarious different forms, and is not limited to the embodiments describedherein. In the drawings, parts that are not related to explanation maybe omitted, for explaining the disclosure clearly, and throughout thedisclosure, similar components were designated by similar referencenumerals.

FIG. 1A is a diagram illustrating an example manipulator according tovarious embodiments.

A manipulator 100 may follow a movement of a user’s arm 1 based on asensing value of an external sensor 10 for detecting a posture of theuser’s arm 1. The manipulator 100 may obtain posture information of theuser’s arm 1 based on the sensing value of the external sensor 10 (e.g.,an IMU sensor, a geomagnetic sensor). The external sensor 10 may includea first external sensor 11 attached on the upper arm A of the user’s arm1, a second external sensor 12 attached on the fore arm B, a thirdexternal sensor 13 attached on the back of the hand C, and a flex sensor14 attached on the finger D.

The manipulator 100 may include a first link 111 corresponding to theupper arm A of the user’s arm 1, and a second link 112 corresponding tothe fore arm B. Also, the manipulator 100 may include a hand 120including a plurality of fingers 121. The manipulator 100 may operatebased on the posture information of the user’s arm 1. For example, themanipulator 100 may grip an object using the hand 120.

FIG. 1B is a diagram illustrating an example configuration of amanipulator according to various embodiments.

The manipulator 100 may include a link 110, a hand 120, and a motor 130.The link 110 may include a first link 111 and a second link 112. Themotor 130 may include a first motor to a sixth motor 131, 132, 133, 134,135, 136.

The first motor 131 and the second motor 132 may be connected with thefirst link 111, and rotate the first link 111. For example, the firstmotor 131 may rotate the first link 111 based on a first axis. The firstaxis may refer, for example, to the x axis of the body frame that willbe described below. The second motor 132 may rotate the first link 111based on a second axis. The second axis refer, for example, to the yaxis of the body frame.

The third motor 133 and the fourth motor 134 may be connected with thefirst link 111 and the second link 112, and rotate the second link 112.For example, the third motor 133 may rotate the second link 112 based onthe first axis. The fourth motor 134 may rotate the second link 112based on a third axis. The third axis may refer, for example, to the zaxis of the body frame.

The fifth motor 135 and the six motor 136 may be connected with thesecond link 112 and the hand 120, and rotate the hand 120. For example,the fifth motor 135 may rotate the hand 120 based on the first axis. Thesixth motor 136 may rotate the hand 120 based on the second axis.

It should be noted that the number of the links 110 and the motors 130according to FIG. 1B is merely an example, and the number of the links110 and the motors 130 is not limited thereto.

FIG. 2 is a block diagram illustrating an example configuration of amanipulator according to various embodiments. The manipulator 100 mayinclude a link 110, a hand 120, a motor 130, a communication interface(e.g., including communication circuitry) 140, a memory 150, and aprocessor (e.g., including processing circuitry) 160.

The link 110 may include a first link 111 corresponding to an upper armof a user’s (e.g., a person’s) arm, and a second link 112 correspondingto a fore arm. The first link 111 and the second link 112 may beconnected through the motor 130, and rotate along three axes accordingto the driving of the motor 130.

The hand 120 may include a plurality of fingers. The hand 120 may gripan object, or release the grip by moving each finger by control of theprocessor 160.

The motor 130 may include a plurality of motors 131, 132, 133, 134, 135,136. The motor 130 may be driven under control of the processor 160, andmove the link 110 and the hand 120.

The communication interface 140 may include at least one circuit, andperform communication with various types of external devices accordingto various types of communication methods. For example, thecommunication interface 140 may receive a sensing value of the externalsensor 10 from the external sensor 10.

The external sensor 10 may refer to a component for detecting a movementor a posture of the user’s arm 1, and it may include a plurality ofInertial Measurement Unit (IMU) sensors, a plurality of geomagneticsensors, and a flex sensor. For example, referring to FIG. 1A, the firstexternal sensor 11 including a first IMU sensor and a first geomagneticsensor may be attached on the upper arm of the user’s arm 1. The secondexternal sensor 12 including a second IMU sensor and a secondgeomagnetic sensor may be attached on the fore arm of the user’s arm 1.The third external sensor 13 including a third IMU sensor and a thirdgeomagnetic sensor may be attached on the back of the hand of the user’sarm 1. The flex sensor 14 may be attached on the user’s finger. Eachexternal sensor may detect the posture of the user’s arm 1. In FIG. 1A,it was illustrated that the first external sensor 11, the secondexternal sensor 12, the third external sensor 13, and the flex sensor 14are respectively attached on the user’s arm 1, but it is also possiblethat the user wears a wearable device including the first externalsensor 11, the second external sensor 12, the third external sensor 13,and the flex sensor 14.

The communication interface 140 may include a wireless communicationmodule and a wired communication module, each including variouscommunication circuitry. The wireless communication module may includeat least one of a Bluetooth Low Energy (BLE) module, a Wi-Ficommunication module, a cellular communication module, a 3rd Generation(3G) mobile communication module, a 4th Generation (4G) mobilecommunication module, a 4th Generation Long Term Evolution (LTE)communication module, or a 5th Generation (5G) mobile communicationmodule. The wired communication module may include an Ethernet module.Also, the communication interface 140 may include at least onecommunication terminal.

The memory 150 may store an operating system (OS) for controlling theoverall operations of the components of the manipulator 100, andinstructions or data related to the components of the manipulator 100.For example, the memory 150 may store data regarding an Altitude andHeading Reference System (AHRS) algorithm for obtaining quaternioninformation based on a sensing value of the external sensor 10. Thememory 150 may be implemented as a non-volatile memory (ex: a hard disc,a solid state drive (SSD), a flash memory), a volatile memory, etc.

The processor 160 may be electronically connected with the memory 150,may include various processing circuitry and control the overallfunctions and operations of the manipulator 100. For example, theprocessor 160 may control the driving of the motor 130 rotating the link110 and the hand 120.

Hereinafter, an operation of the processor 160 for controlling thedriving of the first motor 131 and the second motor 132 rotating thefirst link 111 corresponding to the upper arm of the user’s arm 1 willbe described. For describing the operation, the body frame and thenavigation frame defined in the first link 111, the second link 112, andthe hand 120 of the manipulator 100 will be described.

The body frame may be a frame that is changed according to a movement ofthe manipulator 100. Referring to FIG. 1B, the first link 111, thesecond link 112, and the hand 120 of the manipulator 100 may be alignedin a lower direction, e.g., the direction of gravity. The x axis of thebody frame may refer, for example, to the direction of the first link111, and the z axis may refer, for example, to the direction of thefirst link 111 when the manipulator 100 is moved to be perpendicular tothe direction of gravity by the second motor 132. The y axis of the bodyframe may refer, for example, to the direction of the thumb when theright hand is clenched from the z axis in the direction of the x axis(the right hand frame). In the disclosure, the x axis of the body framemay also be referred to as the first axis, the y axis may be referred toas the second axis, and the z axis may be referred to as the third axis.

The navigation frame may refer, for example, to a frame fixed regardlessof the movement of the manipulator 100. A frame conversion matrixbetween the navigation frame and the body frame may be obtained based onquaternion information or a Euler’s angle.

The processor 160 may obtain quaternion information based on a sensingvalue of the external sensor. The quaternion information indicatesinformation regarding rotation of a user’s arm, and it may include arotation vector and a rotation angle. The processor 160 may obtain thequaternion information by applying a sensing value of the externalsensor to the AHRS algorithm stored in the memory 150. For example, thequaternion information may be a vector q as in the [Formula 1].

$\begin{matrix}{\text{q} = \begin{bmatrix}q_{0} & q_{1} & q_{2} & q_{3}\end{bmatrix}^{T}} & \text{­­­[Formula 1]}\end{matrix}$

In control of a robot arm wherein a rotation axis is physically fixed,there is a need that quaternion information is converted into a Euler’sangle. Accordingly, in the conventional technology for controlling arobot arm, quaternion information was converted into an Euler’s angle asin the [Formula 2].

$\begin{matrix}{\begin{bmatrix}\phi \\\theta \\\psi\end{bmatrix} = \begin{bmatrix}{\arctan\frac{2\left( {q_{0}q_{1} + q_{2}q_{3}} \right)}{1 - 2\left( {q_{1}^{2} + q_{2}^{2}} \right)}} \\{\arcsin\left( {2\left( {q_{0}q_{2} - q_{3}q_{1}} \right)} \right)} \\{\arctan\frac{2\left( {q_{0}q_{3} + q_{1}q_{3}} \right)}{1 - 2\left( {q_{3}^{2} + q_{3}^{2}} \right)}}\end{bmatrix}} & \text{­­­[Formula 2]}\end{matrix}$

However, according to the [Formula 2], as the pitch angle θ approachesmore to +90 degrees or -90 degrees, the numerators and the denominatorsof the roll angle 0̸ and the yaw angle φ converge to 0, and thus aproblem that it becomes difficult to assume the roll angle 0̸ and the yawangle φ occurs. This may be referred to as a so-called Gimbal lockproblem.

To address such a Gimbal lock problem, the processor 160 according tothe disclosure may obtain vectors for each axis of the body frameinterpreted in the navigation frame using the matrix obtained based onthe quaternion information. For example, the processor 160 may obtain aframe conversion matrix

C_(b)^(n)

from the body frame to the navigation frame from the quaternioninformation based on the following [Formula 3]. The frame conversionmatrix may refer, for example, to a matrix for converting the firstvector based on the manipulator 100 into the second vector of thereference frame.

$\begin{matrix}{C_{b}^{n} = \begin{bmatrix}{q_{0}^{2} + q_{1}^{2} - q_{2}^{2} - q_{3}^{2}} & {2q_{1}q_{2} - 2q_{0}q_{3}} & {2q_{0}q_{2} + 2q_{1}q_{3}} \\{2q_{0}q_{3} + 2q_{1}q_{2}} & {q_{0}^{2} - q_{1}^{2} + q_{2}^{2} - q_{3}^{2}} & {2q_{2}q_{3} - 2q_{0}q_{1}} \\{2q_{1}q_{3} - 2q_{0}q_{2}} & {2q_{2}q_{3} + 2q_{0}q_{1}} & {q_{0}^{2} - q_{1}^{2} - q_{2}^{2} + q_{3}^{2}}\end{bmatrix}} & \text{­­­[Formula 3]}\end{matrix}$

FIG. 3 is a diagram illustrating an example frame conversion of a vectoraccord ing to various embodiments.

Referring to FIG. 3 , the first vector X^(b), Z^(b) based on themanipulator 100 may respectively be a unit vector [1,0,0]^(T) in thedirection of the x axis and a unit vector [0,0,1]^(T) in the directionof the z axis expressed in the body frame. The first vector X^(b)_(,)Z^(b) may be stored in the memory 150 as a preset value.

The processor 160 may obtain a second vector X^(n), Z^(n) based on theframe conversion matrix

C_(b)^(n)

from the body frame to the navigation frame, and the first vector X^(b),Z^(b). For example, the processor 160 may obtain the second vectorX^(n), Z^(n) expressed in the navigation frame based on the [Formula 4].The second vector X^(n), Z^(n) may include a 2-1 vector X^(n) and a 2-2vector Z^(n). Meanwhile, the upper subscripts b and n of the vectors inthe disclosure may respectively refer to location vectors interpreted inthe body frame and the navigation frame.

$\begin{matrix}\begin{array}{l}{X^{n} = C_{b}^{n}\, X^{b} = \left\lbrack {x_{0}\, x_{1}\, x_{2}} \right\rbrack^{T}} \\{Z^{n} = C_{b}^{n}\, Z^{b} = \left\lbrack {z_{0}\, z_{1}\, z_{2}} \right\rbrack^{T}}\end{array} & \text{­­­[Formula 4]}\end{matrix}$

The processor 160 may obtain posture information of the user’s arm basedon the second vector X^(n), Z^(n). The posture information of the user’sarm may include a roll angle corresponding to the X axis, a pitch anglecorresponding to the y axis, and a yaw angle corresponding to the zaxis. In the disclosure, the roll angle of the first link 111 wasignored. Changes of postures of the second link 112 and the hand 120 bythe roll rotation angle of the first link 111 may be expressed as athird motor 133. Based on the navigation frame, all location vectors ofthe first link 111 may respectively be expressed as a yaw angle and apitch angle by the first motor 131 and the second motor 132.

The processor 160 may obtain a pitch angle, a first yaw angle yaw1, anda second yaw angle yaw2 based on the [Formula 5].

$\begin{matrix}\begin{array}{l}{Pitch = - tan^{- 1}\frac{x_{2}}{\sqrt{x_{0}^{2} + x_{1}^{2}}}} \\{yaw1 = tan^{- 1}\frac{x_{1}}{x_{0}}} \\{yaw2 = tan^{- 1}\frac{z_{1}}{z_{0}} + \,\pi}\end{array} & \text{­­­[Formula 5]}\end{matrix}$

The processor 160 may obtain the pitch angle and the first yaw angleyaw1 based on the 2-1 vector X^(n) or a vector

X_(p)^(n)

wherein the 2-1 vector X^(n) was made to be orthogonal on the xy plane.Also, the processor 160 may obtain the second yaw angle yaw2 based onthe 2-2 vector Z^(n) or a vector

Z_(p)^(n)

wherein the 2-2 vector Z^(n) was made to be orthogonal on the xy plane.

The processor 160 may obtain the final yaw angle yaw_(final) based onthe first yaw angle yaw1, the second yaw angle yaw2, and a predefinedweight function W. For example, the processor 160 may obtain the finalyaw angle yaw_(final) based on the [Formula 6].

$\begin{matrix}\begin{matrix}{yaw_{final} = W \ast yaw1 + \left( {1 - W} \right) \ast yaw2} \\{W\,:\text{weight function}}\end{matrix} & \text{­­­[Formula 6]}\end{matrix}$

$\begin{array}{l}{\text{if}{{- \pi}/2} \leq \text{pitch} \leq 0} \\{\text{W} = \frac{\left( {\frac{tan^{- 1}\left( \frac{\left( {\text{pitch} + \frac{\pi}{4}} \right)}{T} \right)}{\pi} \ast 2 + 1} \right)}{2},T = 2}\end{array}$

$\begin{array}{l}{\text{if   0} < \text{pitch} \leq {\pi/2}} \\{\text{W} = \frac{\left( {\frac{- tan^{- 1}\left( \frac{\left( {pitch - \frac{\pi}{4}} \right)}{T} \right)}{\pi} \ast 2 + 1} \right)}{2},T = 2}\end{array}$

The processor 160 may obtain the final yaw angle yaw_(final) by applyingweights based on the weight function W to the first yaw angle yaw1 andthe second yaw angle yaw2. For example, the weight function W may bedescribed as illustrated in FIG. 4 .

The processor 160 may control the first motor 131 based on the final yawangle yaw_(final). The processor 160 may control the driving of thesecond motor 132 based on the obtained pitch angle. Accordingly, themanipulator 100 may follow the movement of the upper arm of the user’sarm 1.

A method for controlling the driving of the first motor 131 and thesecond motor 132 rotating the first link 111 corresponding to the upperarm of the user’s arm 1 has been described. Hereinafter, an operation ofthe processor 160 for controlling the driving of the third motor 133 andthe fourth motor 134 rotating the second link 112 corresponding to thefore arm of the user’s arm 1 will be described in greater detail.

FIG. 5 is a diagram illustrating an example method for controllingdriving of a motor according to various embodiments.

Referring to FIG. 5 , a 2-1-1 vector v_(u), corresponding to thedirection of the first link 111, and a 2-2-2 vector v_(f) correspondingto the direction of the second link 112 can be defined. The first angleα may refer, for example, to an angle between the third vector v_(u) andthe fourth vector v_(f) indicating the directions of the first link 111and the second link 112.

The following two vectors are defined for calculating the second angleβ. First, a fifth vector v₁ wherein the fourth vector v_(f) was made tobe orthogonal in the direction of the third vector v_(u) is defined. Acircle of which center is the fifth vector v₁, and of which radius isthe distance between the fourth vector v_(f) and the fifth vector v₁ mayexist on a plane perpendicular to the fifth vector v₁. Here, a sixthvector v_(x) is defined from an intersection vector of the plane of thecircle and the plane including the z axis vector and the fifth vector v₁in the navigation frame. The second angle β may refer, for example, toan angle between the fifth vector v₁ and the sixth vector v_(x).

The processor 160 may control the driving of the fourth motor 134 basedon the first angle α, and control the driving of the third motor 133based on the second angle β . Hereinafter, an operation of the processor160 for calculating the first angle α and the second angle β will beexamined.

The processor 160 may obtain the third vector v_(u) and the fourthvector v_(f). As the third vector v_(u) is identical to the 2-1 vectorX^(n) in FIG. 3 , detailed explanation thereof will be omitted. Also,the fourth vector v_(f) may be obtained by the same method for the 2-1vector X^(n). For example, the processor 160 may obtain a sensing valueof a second external sensor 12 attached on the fore arm of the user’sarm 1. The processor 160 may obtain quaternion information correspondingto the sensing value of the second external sensor 12 using the AHRSalgorithm. The processor 160 may obtain a frame conversion matrixcorresponding to the sensing value of the second external sensor 12based on the [Formula 3]. The processor 160 may obtain the fourth vectorv_(f) based on the [Formula 4].

The processor 160 may obtain the first angle α of the second link 112based on the inner product of the third vector v_(u) and the fourthvector . Specifically, the processor 160 may obtain the first angle αbased on the [Formula 7].

$\begin{matrix}\begin{matrix}{\alpha = cos^{- 1}\left( \frac{< v_{u},v_{f} >}{\left| v_{u} \right|\left| v_{f} \right|} \right)} \\{< v_{u},v_{f} > :\text{inner product of}v_{u},v_{f}}\end{matrix} & \text{­­­[Formula 7]}\end{matrix}$

FIG. 6 is a diagram illustrating an example method for obtaining asecond angle according to various embodiments.

The processor 160 may obtain the second angle β based on the [Formula 8]and the [Formula 9].

$\begin{matrix}{\beta = cos^{- 1}\left( \frac{< v_{1 f},v_{x} >}{\left| v_{1f} \right|\left| v_{x} \right|} \right)} & \text{­­­[Formula 8]}\end{matrix}$

$\begin{matrix}{if\mspace{6mu} cos^{- 1}\left( \frac{< v_{x} \times v_{1f},v_{u} >}{\left| {v_{x} \times v_{1f}} \right|\left| v_{u} \right|} \right) < {\pi/2}} \\\left. \rightarrow\beta = \left( {- 1.0} \right) \ast \beta \right.\end{matrix}$

$\begin{matrix}\begin{array}{l}{v_{1} = \left| v_{f} \right|cos(\alpha)\frac{v_{u}}{\left| v_{u} \right|}} \\{v_{1f} = v_{f} - v_{1}} \\{v_{2} = v_{1} \times z} \\{v_{x} = \frac{v_{2} \times v_{1}}{\left| {v_{2} \times v_{1}} \right|}\left| v_{1f} \right|}\end{array} & \text{­­­[Formula 9]}\end{matrix}$

The [Formula 8] and the [Formula 9] can be derived by the geometricrelation illustrated in FIG. 6 .

The posture of the back of the hand of the user’s arm 1 is influenced bythe postures of the upper arm and the fore arm of the user’s arm 1, andthe posture of the fore arm of the user’s arm 1 is influenced by theposture of the upper arm of the user’s arm 1. Accordingly, the postureof the back of the hand

C_(b, hand_modified)^(n)

independent from the postures of the upper arm and the fore arm of theuser’s arm 1 can be obtained by compensating the posture of the fore arm

C_(b, fore_arm)^(n)

to which the posture of the upper arm of the user’s arm 1 is reflectedas in the [Formula 9-2].

$\begin{matrix}{C_{b,hand\_ modified}^{n} = \left( C_{b,fore\_ arm}^{n} \right)^{- 1}C_{b,hand}^{n}} & \text{­­­[Formula 9-2]}\end{matrix}$

In FIG. 1B, if the rotation angles of the fifth motor 135 and the sixthmotor 136 for expressing the roll and the pitch of the back of the handare indicated as roll_(hand) and pitch_(hand), the two rotation anglesare expressed as the [Formula 9-3].

$\begin{matrix}\begin{array}{l}{roll_{hand} = tan^{- 1}\left( \frac{C_{b,hand\_ modified}^{n}\left( {3,2} \right)}{C_{b,hand\_ modified}^{n}\left( {3,3} \right)} \right)} \\{pitch_{hand} = sin^{- 1}\left( {- C_{b,hand\_ modified}^{n}\left( {3,1} \right)} \right)}\end{array} & \text{­­­[Formula 9-3]}\end{matrix}$

A sensing value of the external sensor 10 attached on the user’s arm 1may include an error as physical characteristics (e.g., muscle mass,skin flexion, etc.) are different for each user. The processor 160 maycompensate an error using an initial frame conversion matrix

C_(b)^(n)

corresponding to an initial set posture of a user (e.g., an action ofstretching an arm horizontally to the ground surface). For example, theprocessor 160 may obtain a frame conversion matrix wherein an error wascompensated

C_(b, compensation)^(n)

based on the [Formula 10]. Then, the processor 160 may use the frameconversion matrix wherein an error was compensated

C_(b, compensation)^(n)

when obtaining the aforementioned second vector X^(n), Z^(n), thirdvector v_(u), and fourth vector v_(f).

$\begin{matrix}{C_{b,compensation}^{n} = \left( C_{b,initial\_ value}^{n} \right)^{- 1}C_{b,current\_ value}^{n}} & \text{­­­[Formula 10]}\end{matrix}$

Here,

C_(b, current_value)^(n)

may refer, for example, to a frame conversion matrix that is obtainedbased on the current sensing value of the external sensor 10. Theprocessor 160 may obtain the initial frame conversion matrix

C_(b, initial_value)^(n)

based on the sensing value of the external sensor 10 obtained when theuser takes the initial set posture, and the [Formula 3], and store it inthe memory 150.

The processor 160 may apply an IIR filter to motor control informationfor motion smoothing of the manipulator 100. The processor 160 mayadjust the size of a control input applied to the motor 130 based on the[Formula 11].

$\begin{matrix}\begin{array}{l}{IIR_{Motor_{input,t}} = k \ast IIR_{Motor_{input,t - 1}} + \left( {1 - k} \right)M,} \\\left. if\mspace{6mu} M > TH\rightarrow M = TH \right.\end{array} & \text{­­­[Formula 11]}\end{matrix}$

Here, ^(HR)Motor_(input,x) may refer, for example, to an output value ofthe filter used as an input of the motor 130, ^(HR)Motor_(input,1-2) mayrefer, for example, to a control input of the motor right before thecurrent time point, and M may refer, for example, to a control input ofthe motor assumed at the current time point before being filtered by theIIR filter. Also, TH may refer to a predetermined (e.g., specified)value (e.g., 10 degrees) for limiting the input of the motor 130, and kmay refer, for example, to a predefined value (e.g., 0.7).

The processor 160 may control the driving of the fifth motor 135 and thesixth motor 136 for controlling the movement of the hand 120. Forexample, the processor 160 may obtain the posture information of theuser’s hand based on a sensing value of the third external sensor 13attached on the wrist of the user’s arm 1. The processor 160 may controlthe driving of the fifth motor 135 and the sixth motor 136 based on theobtained posture information.

The processor 160 may control the operation of the finger included inthe hand 120. The processor 160 may obtain the posture information ofthe user’s finger based on a sensing value of the flex sensor 14received through the communication interface 140. The processor 160 maycontrol the operation of the finger based on the obtained postureinformation. Meanwhile, the sensing value of the flex sensor 14 mayinclude an error due to differences in hand shapes or sizes of users.The processor 160 may obtain a sensing value wherein an error wascompensated Flex_(cal) based on the [Formula 12], and control theoperation of the finger based on the compensated sensing value

$\begin{matrix}{Flex_{cal} = \left( \frac{Flex_{current} - Flex_{min}}{Flex_{max} - Flex_{min}} \right)} & \text{­­­[Formula 12]}\end{matrix}$

Here, Flex_(current) may refer, for example, to the sensing value of theflex sensor 14 obtained at the current time point, Flex_(min) may refer,for example, to the minimum value among the sensing values of the flexsensor 14 stored in the memory 150, and Flex_(max) may refer, forexample, to the maximum value among the sensing values of the flexsensor 14 stored in the memory 150.

The processor 160 may accumulatively store the sensing values of theflex sensor 14 in the memory 150. For example, the processor 160 mayaccumulatively store the sensing values of the flex sensor 14corresponding to an initial set posture of a user (e.g., a posture ofclenching the fist or a posture of unfolding the palm) in the memory150. The processor 160 may identify the minimum value and the maximumvalue among the stored sensing values of the flex sensor 14.

FIG. 7 is a flowchart illustrating an example method for controlling amanipulator according to various embodiments.

Referring to FIG. 7 , the manipulator 100 may receive a sensing value ofan external sensor for detecting a posture of a user’s arm in operationS710. The external sensor may include a first external sensor attachedon the upper arm of the user’s arm, a second external sensor attached onthe fore arm, a third external sensor attached on the wrist, and a flexsensor attached on the finger.

The manipulator 100 may acquire (e.g., obtain) a second vectorcorresponding to the posture of the user’s arm based on a matrixobtained based on the sensing value of the external sensor and the firstvector prestored in the memory in operation S720. The manipulator 100may acquire information regarding a posture of a user’s arm based on thesecond vector in in operation S730. For example, the manipulator 100 mayapply the sensing value to an Altitude and Heading Reference System(AHRS) algorithm stored in the manipulator 100, and obtain a quaternionvector corresponding to the posture of the user’s arm. The manipulator100 may obtain a matrix based on the quaternion vector (quaternioninformation). For example, the manipulator 100 may obtain the matrixbased on the [Formula 3].

The obtained matrix may include a value wherein an error according todifferences in physical characteristic for each user was compensated.For example, the manipulator 100 may obtain a first matrix based on afirst sensing value corresponding to the initial set posture of theuser’s arm, and store it in the manipulator 100. The manipulator 100 mayobtain a compensated matrix based on a second matrix obtained based on asecond sensing value corresponding to the current posture of the user’sarm, and the stored first matrix.

The second vector may include a 2-1 vector corresponding to the x axisand a 2-2 vector corresponding to the z axis. The posture information ofthe user’s arm may include a roll angle corresponding to the x axis, apitch angle corresponding to the y axis, and a yaw angle correspondingto the z axis. The manipulator 100 may obtain a first yaw angle based onthe 2-1 vector. The manipulator 100 may obtain a second yaw angle basedon the 2-2 vector. The manipulator 100 may obtain the yaw angle byapplying weights to the first yaw angle and the second yaw angle basedon a predetermined weight function. The manipulator 100 may obtain theyaw angle based on the aforementioned [Formula 5] and [Formula 6].

The manipulator 100 may obtain the posture information of the fore armof the user’s arm, and control the movement of the second link 112 basedon the posture information of the fore arm of the user’s arm. Themanipulator 100 may obtain a third vector corresponding to the firstlink 111 based on a sensing value of the first external sensor attachedon the upper arm of the user’s arm. The manipulator 100 may obtain afourth vector corresponding to the second link 112 based on a sensingvalue of the second external sensor attached on the fore arm of theuser’s arm.

The manipulator 100 may obtain posture information corresponding to thesecond link 112 based on the third vector and the fourth vector. Forexample, the manipulator 100 may obtain the posture informationcorresponding to the second link 112 based on the aforementioned[Formula 7], [Formula 8], and [Formula 9]. The manipulator 100 maycontrol the driving of the plurality of motors corresponding to thesecond link 112 based on the posture information corresponding to thesecond link 112 in operation S740.

A method for obtaining input values of motors corresponding to an upperarm and a fore arm of a manipulator from quaternion informationcorresponding to an upper arm and a fore arm of a user was described.Hereinafter, according to another embodiment of the disclosure, a methodfor assuming a posture of a hand independent from postures of an upperarm and a fore arm of a manipulator will be described.

FIG. 8 is a flowchart illustrating an example method for controlling amanipulator according to various embodiments.

All of the quaternion information assumed from a user’s upper arm, forearm, or hand indicates an independent posture of a body frame based onthe reference frame. This may refer, for example, to a Euler’s anglebeing calculated from quaternion information assumed for each of theparts, the posture of the body frame can be made to coincide with theposture of the reference frame through frame conversion.

If a posture of a hand of a manipulator is independent from the posturesof the upper arm and the fore arm of the manipulator as in the case of aposture of an actual hand of a user, the posture of the hand of themanipulator can be determined only with quaternion information assumedfrom the user’s hand, and this may refer, for example, to the posture ofthe hand of the manipulator being easily carried out.

However, the posture of the hand of the manipulator changes according tothe posture of the fore arm of the manipulator, and the posture of thefore arm of the manipulator changes according to the posture of theupper arm of the manipulator. That is, it can be said that the postureof the hand of the manipulator is dependent on the postures of the upperarm and the fore arm of the manipulator. Accordingly, for controllingthe posture of the hand of the manipulator correctly, the posture of theupper arm and the posture of the fore arm of the manipulator should beconsidered.

Accordingly, the manipulator according to the disclosure can assume aposture of a hand independent from the postures of the upper arm and thefore arm of the manipulator, and this process may be referred to as ahand balancing process. Hereinafter, an embodiment related to a handbalancing process according to the disclosure will be described.

The embodiment that will be described below is also based on the premisethat the manipulator according to the disclosure includes components asillustrated in FIG. 1B, as in the embodiment described earlier.Specifically, the manipulator may include a plurality of links, aplurality of motors, a communication interface, a memory, and aprocessor.

The plurality of links may include a first link corresponding to theupper arm, a second link corresponding to the fore arm, and a third linkcorresponding to the hand, and the plurality of motors may include afirst motor rotating the first link based on the first axis, a secondmotor rotating the first link based on the second axis, a third motorrotating the second link based on the first axis, a fourth motorrotating the second link based on the third axis, a fifth motor rotatingthe third link based on the first axis, and a sixth motor rotating thethird link based on the second axis.

As detailed explanation for the other components of the manipulator wasdescribed above, overlapping explanation for the same content may not berepeated here.

Referring to FIG. 8 , the manipulator may obtain information for a bodyframe of a link corresponding to the fore arm based on first rotationangle information for motors corresponding to the upper arm and the forearm among the plurality of motors in operation S810.

For example, the manipulator may calculate a frame conversion matrix forconverting the first rotation angle information into a sensing valueindicating the posture of the upper arm and the posture of the fore arm,and obtain information for the body frame corresponding to the fore armbased on the frame conversion matrix.

In other words, the manipulator may not use quaternion informationcorresponding to the upper arm and the fore arm, but calculate a frameconversion matrix inversely based on the first rotation angleinformation which is an actual motor input value for the motorscorresponding to the upper arm and the fore arm, and obtain informationfor the body frame indicating the posture of the actual linkcorresponding to the fore arm based on it. This is for reducing errorsthat occur as the dimension of posture information of a high dimensionexpressed in the user’s arm is reduced to a posture of a low dimensionexpressed in the link corresponding to the manipulator’s arm.

When the information for the body frame of the link corresponding to thefore arm is obtained, the manipulator may obtain equilibrium angleinformation positioning the body frame in equilibrium with a predefined(e.g., specified) reference frame in operation S820.

The equilibrium angle information may include roll equilibrium angleinformation and pitch equilibrium angle information. The rollequilibrium angle information may indicate an angle that positions thesecond axis of the body frame in equilibrium with the xy plane of thereference frame in the case of rotating the body frame based on thefirst axis of the body frame, and the pitch equilibrium angleinformation may indicate an angle that makes the third axis of the bodyframe coincide with the z axis of the reference frame in the case ofrotating the body frame based on the second axis of the body framerotated according to the roll equilibrium angle information. The firstaxis, the second axis, and the third axis of the body frame are used asterms for specifying the x axis, the y axis, and the z axis of the bodyframe by distinguishing them from the x axis, the y axis, and the z axisof the reference frame.

For example, based on the posture information of the fore arm body frameexpressed based on the reference frame, the manipulator may calculate aroll equilibrium angle that makes the second axis included within the xyplane of the reference frame in the case of rotating the fore arm bodyframe based on the first axis of the body frame.

When the roll equilibrium angle is calculated, the manipulator maycalculate a pitch equilibrium angle that makes the third axis coincidewith the z axis of the reference frame in the case of rotating the forearm body frame based on the second axis, based on the postureinformation of the fore arm body frame that was newly made when rotatingthe fore arm body frame as much as the roll equilibrium angle based onthe first axis.

After the pitch equilibrium angle was calculated, if the manipulator isrotated as much as the pitch equilibrium angle based on the second axisof the fore arm body frame of the manipulator, the plane including thefirst axis and the second axis of the fore arm body frame becomesperpendicular to the earth gravity acceleration vector, and handbalancing may be completed by this. This may refer, for example, to anindependent posture of a hand being obtained no matter what kind ofvalues the rotation angles of the motors driving the upper arm and thefore arm of the manipulator have.

The process of calculating a roll equilibrium angle and a pitchequilibrium angle will be described in greater detail below withreference to FIGS. 8, 9 and FIG. 10 .

After the equilibrium angle information is obtained, if a sensing valueindicating the posture of the hand is received from the external sensor,the manipulator may obtain second rotation angle information for themotors corresponding to the hand among the plurality of motors based onthe sensing value and the equilibrium angle information in operationS830. When the second rotation angle information is obtained, themanipulator may control the motors corresponding to the hand based onthe second rotation angle information in operation S840.

For example, the manipulator may obtain third rotation angle informationfor the motors corresponding to the hand based on the sensing valueindicating the posture of the hand, and obtain the second rotation angleinformation by compensating the third rotation angle information basedon the equilibrium information. For example, the manipulator may obtainthe second rotation angle information according to the result ofcompensating the third rotation angle information by adding theequilibrium angle information to the third rotation angle informationfor the motors corresponding to the hand, and control the motorscorresponding to the hand based on the obtained second rotation angleinformation.

According to the example described with reference to FIG. 8 above, ashand balancing is performed, which compensates the degree that theposture of the hand is warped with respect to the reference frame whenthe postures of the upper arm and the fore arm of the user’s arm aregiven arbitrarily in consideration of the postures of the upper arm andthe fore arm of the manipulator, posture errors that occur from theexternal sensor attached on the user’s arm can be minimized or reduced,and the posture of the hand independent from the postures of the upperarm and the fore arm of the manipulator can be assumed. Also, inaccordance thereto, the user can perform the desired task fast andelaborately.

FIG. 9 is a diagram illustrating a frame and an example method forobtaining information for a body frame of a link corresponding to a forearm according to various embodiments.

The frames illustrated in FIG. 9 respectively indicate the referenceframe according to the disclosure and the body frames corresponding tothe plurality of respective links included in the manipulator, e.g., thebody frame corresponding to a user’s upper arm, a body framecorresponding to a fore arm, and a body frame corresponding to a hand.

The yaw angle of the reference frame may refer, for example, to a framethat moves identically according to the yaw angle of the upper arm, andall body frames are interpreted based on the reference frame. Thepostures of the upper arm and the fore arm of the manipulator aredetermined according to the yaw angle and the pitch angle falling underrotations of the third axis and the second axis in the body frame of theupper arm of the manipulator, and the roll angle and the yaw anglefalling under rotations of the first axis and the third axis in the bodyframe of the fore arm of the manipulator.

As described above, for controlling the posture of the manipulator’shand correctly, the posture of the upper arm and the posture of the forearm of the manipulator should be considered. Thus, according to theconventional technology, a relative posture of the hand for the fore armcan be obtained by obtaining a frame conversion matrix between the bodyframe of the hand and the reference frame using quaternion informationobtained from the IMU sensor and the geomagnetic sensor attached on theuser’s hand, obtaining an inverse matrix of the frame conversion matrixbetween the body frame of the fore arm and the reference frame usingquaternion information obtained from the IMU sensor and the geomagneticsensor attached on the fore arm of the user’s arm, and then multiplyingthe inverse matrix of the frame conversion matrix obtained from the forearm to the frame conversion matrix of the hand.

However, according to the conventional technology, in a process whereina user bends and unfolds an arm, or raises and lowers an arm, an errormay occur when the postures of the IMU sensor and the geomagnetic sensorattached on the user’s arm change. For example, in case the user benthis arm, if the muscle of the upper arm is knotted, the tilt of thesurface on which the sensors are mounted changes, and such a phenomenonis reflected to the quaternion information, and it may appear as aposture error of the upper arm. Also, in the case of the fore arm, aposture error may occur for a similar reason to the case of the upperarm. In addition, posture errors of the upper arm and the fore armdirectly cause a posture error of the hand, and as a result, a usercannot perform an intuitive and fast task according to a differencebetween the posture of the actual hand and the posture of themanipulator’s hand.

The disclosure addresses the problem of the conventional technology asdescribed above, and according to the disclosure, when obtaining aposture of the fore arm, quaternion information obtained from the IMUsensor and the geomagnetic sensor mounted on the upper arm and the forearm is not used, but quaternion information obtained based on therotation angles of the motors mounted on the upper arm and the fore armof the actual manipulator is used, and accordingly, the manipulator’shand is made to maintain equilibrium in the reference frame. This mayrefer, for example, to the posture of the manipulator’s hand beinginfluenced by the quaternion information obtained from the IMU sensorand the geomagnetic sensor attached on the user’s hand.

Hereinafter, first, a method for indicating change of unit vectorsaccording to change of postures of the upper arm and the fore arm in thereference frame if unit vectors on the x, y, and z axes of the fore armbody frame are respectively X=[1,0,0]^(T), Y=[0,1,0] ^(T), Z=[0,0,1]^(T)will be described with reference to the [Formula 13], [Formula 14], and[Formula 15], and then a process of obtaining a roll equilibrium angleand a process of obtaining a pitch equilibrium angle according to thedisclosure will be described in greater detail below with reference toFIG. 10 and FIG. 11 .

[Formula 13] expresses a process of obtaining converted vectors X1, Y1,and Z1 in the case of performing frame conversion for unit vectors X, Y,and Z through rotation of the yaw angle of the fore arm.

$\begin{matrix}\begin{array}{l}\text{X1=C1*X} \\\text{Y1=C1*Y} \\\text{Z1=C1*Z} \\{C1 = \left\lbrack \begin{array}{lll}{\cos\left( {yaw} \right)} & {\text{­­­[Formula 13]}\left( {yaw} \right)} & 0 \\{\sin\left( {yaw} \right)} & {\cos\left( {yaw} \right)} & 0 \\0 & 0 & 1\end{array} \right\rbrack}\end{array} & \end{matrix}$

[Formula 14] expresses a process of obtaining converted vectors X2, Y2,and Z2 in the case of performing frame conversion for vectors X1, Y1,and Z1 through rotation of the roll angle of the upper arm.

$\begin{matrix}\begin{array}{l}\text{X2=C2*X1} \\\text{Y2=C2*Y1} \\\text{Z2=C2*Z1} \\{C2 = \left\lbrack \begin{array}{lll}1 & 0 & 0 \\0 & {\cos\left( {roll} \right)} & {\text{-sin}\left( {roll} \right)} \\0 & {\sin\left( {roll} \right)} & {\cos\left( {roll} \right)}\end{array} \right\rbrack}\end{array} & \text{­­­[Formula 14]}\end{matrix}$

[Formula 15] expresses converted vectors X3, Y3, and Z3 in the case ofperforming frame conversion for vectors X2, Y2, and Z2 through rotationof the pitch angle of the upper arm.

$\begin{matrix}\begin{array}{l}\text{X3=C3*X2} \\\text{Y3=C3*Y2} \\\text{Z3=C3*Z2} \\{C3 = \left\lbrack \begin{array}{lll}{\cos\left( {pitch} \right)} & 0 & {\sin\left( {pitch} \right)} \\0 & 1 & 0 \\{\text{-sin}\left( {pitch} \right)} & 0 & {\cos\left( {pitch} \right)}\end{array} \right\rbrack}\end{array} & \text{­­­[Formula 15]}\end{matrix}$

Vectors X3, Y3, and Z3 are a result of interpreting X, Y, and Z whichare unit vectors of the body frame of the fore arm of the manipulator inthe reference frame through frame conversion, and this was expressed inFIG. 10 . When the rotation amount of the two motors corresponding tothe manipulator’s hand is 0, the body frame of the fore arm is alwaysidentical to the body frame of the back of the hand. Accordingly, tomake the body frame of the hand maintain an equilibrium state in thereference frame, it is only necessary to find a condition forequilibrium of X3, Y3, and Z3 in the body frame of the fore arm viewedfrom the refence frame. Explanation in this regard will be made ingreater detail below with reference to FIG. 10 and FIG. 11 .

FIG. 10 is a diagram illustrating an example process of obtaining a rollequilibrium angle according to various embodiments.

Referring to FIG. 10 , a roll equilibrium angle (roll_hand in FIG. 10 )that makes the vector Y3 exist on the XY plane of the reference frame inthe case of performing frame rotation based on the vector X3 can bedefined. That is, the roll equilibrium angle is the angle of the vectorY3 with the intersection vector Vinter of the Y3Z3 plane and the XYplane. The intersection vector Vinter can be calculated according to thefollowing [Formula 16]. [Formula 16] includes a plurality ofmathematical formulae and operation processes in that regard.

$\begin{matrix}\begin{array}{l}\text{Mathematical formula of the XY plane: z=0} \\{\text{Mathematical formula of the Y3Z3 plane: X3}\lbrack 0\rbrack\text{*x+X3}\lbrack 1\rbrack\text{*y+}} \\{\text{X3}\lbrack 2\rbrack\text{*z=0}} \\{\left( {\text{Meanwhile, X3=}\left\lbrack {\text{X3}\lbrack 0\rbrack,\text{X3}\lbrack 1\rbrack,\text{X3}\lbrack 2\rbrack} \right\rbrack} \right)}\end{array} & \text{­­­[Formula 16]}\end{matrix}$

If the two formulae are united,

X3[0] * x + X3[1] * y = 0&z = 0,

Accordingly, Vinter=[-X3[1], X3[0], 0].

The roll equilibrium angle can be calculated according to the following[Formula 17]. [Formula 17] includes a plurality of mathematical formulaeand operation processes in that regard.

[Formula 17]If the cross product of the vector Y3 and the vector Vinter is referred to as Vcross,Vcross=cross_product(Y3, Vinter).If |V| is defined as the size of the vector V, if(Vcross[0]>=0)roll_hand=asin(|Vcross|/|Y3|/|Vinter|) else roll_hand=-1.0*roll_hand

FIG. 11 is a diagram illustrating an example process of obtaining apitch equilibrium angle according to various embodiments.

As illustrated in FIG. 11 , in the case of rotating the vector Y3 andthe vector Z3 as much as the rotation angle - 1.0*roll_hand based on thevector X3, if the vectors are respectively converted to the vector Y4and the vector Z4, the vector Y4 gets to exist on the XY plane of thereference frame.

If the angle of the vector Z4 and the unit vector Z of the referenceframe may refer, for example, to the pitch equilibrium angle (pitch_handin FIG. 11 ), in the case of rotating the vector X3 and the vector Z4 asmuch as -1.0*pitch_hand based on the vector Y4, the direction of thevector converted through the rotation of the vector Z4 is made tocoincide with the Z axis direction of the reference frame, and thevector converted through the rotation of the vector X3 is made to existon the XY plane of the reference frame. Accordingly, the hand balancingprocess according to the disclosure can be performed based on the rollequilibrium angle and the pitch equilibrium angle.

If the case wherein the vector Z3 coincides with the vector Z4 as it isrotated as much as the rotation angle - 1.0*roll_hand based on thevector X3 is expressed using the definition of the quaternioninformation, it is as in the following [Formula 18]. [Formula 18]includes a plurality of mathematical formulae and operation processes inthat regard.

[Formula 18]

If the quaternion information is defined as Q = [Q[0], Q[1], Q[2],Q[3]],

the rotation vector of the quaternion information is Xu=X3/IX31, and therotation angle becomes the roll equilibrium angle.

$\begin{array}{l}{\text{Q=}\left\lbrack {\text{cos}\left( {\text{roll\_hand}/2} \right),\quad\text{sin}\left( {\text{roll\_hand}/2} \right)\text{*Xu}\lbrack 0\rbrack,} \right)} \\\left( {\text{sin}\left( {\text{roll\_hand}/2} \right)\text{*Xu}\lbrack 1\rbrack,\quad\text{sin}\left( {\text{roll\_hand}/2} \right)\text{*Xu}\lbrack 2\rbrack} \right\rbrack\end{array}$

When the quaternion information is given, a frame conversion matrix Cqis calculated from this, and the rotation conversion vector Z4 of thevector Z3 can be obtained. The following [Formula 19] expresses thisprocess. [Formula 19] includes a plurality of mathematical formulae andoperation processes in that regard.

$\begin{matrix}\begin{array}{l}{\text{Cq}\lbrack 0\rbrack\lbrack 0\rbrack = \text{Q}\lbrack 0\rbrack\text{*Q}\lbrack 0\rbrack\text{+Q}\lbrack 1\rbrack\text{*Q}\lbrack 1\rbrack\text{-Q}\lbrack 2\rbrack\text{*Q}\lbrack 2\rbrack\text{-Q}\lbrack 3\rbrack\text{*Q}\lbrack 3\rbrack} \\{\text{Cq}\lbrack 0\rbrack\lbrack 1\rbrack = 2.0\text{*}\left( {\text{Q}\lbrack 1\rbrack\text{*Q}\lbrack 2\rbrack\text{-Q}\lbrack 0\rbrack\text{*Q}\lbrack 3\rbrack} \right)} \\{\text{Cq}\lbrack 0\rbrack\lbrack 2\rbrack = 2.0\text{*}\left( {\text{Q}\lbrack 1\rbrack\text{*Q}\lbrack 3\rbrack\text{+Q}\lbrack 0\rbrack\text{*Q}\lbrack 2\rbrack} \right)} \\{\text{Cq}\lbrack 1\rbrack\lbrack 0\rbrack = 2.0\text{*}\left( {\text{Q}\lbrack 1\rbrack\text{*Q}\lbrack 2\rbrack\text{+Q}\lbrack 0\rbrack\text{*Q}\lbrack 3\rbrack} \right)} \\{\text{Cq}\lbrack 1\rbrack\lbrack 1\rbrack = \text{Q}\lbrack 0\rbrack\text{*Q}\lbrack 0\rbrack\text{-Q}\lbrack 1\rbrack\text{*Q}\lbrack 1\rbrack\text{+Q}\lbrack 2\rbrack\text{*Q}\lbrack 2\rbrack\text{-Q}\lbrack 3\rbrack\text{*Q}\lbrack 3\rbrack} \\{\text{Cq}\lbrack 1\rbrack\lbrack 2\rbrack = 2.0\text{*}\left( {\text{Q}\lbrack 2\rbrack\text{*Q}\lbrack 3\rbrack\text{-Q}\lbrack 0\rbrack\text{*Q}\lbrack 1\rbrack} \right)} \\{\text{Cq}\lbrack 2\rbrack\lbrack 0\rbrack = 2.0\text{*}\left( {\text{Q}\lbrack 1\rbrack\text{*Q}\lbrack 3\rbrack\text{-Q}\lbrack 0\rbrack\text{*Q}\lbrack 2\rbrack} \right)} \\{\text{Cq}\lbrack 2\rbrack\lbrack 1\rbrack = 2.0\text{*}\left( {\text{Q}\lbrack 2\rbrack\text{*Q}\lbrack 3\rbrack\text{+Q}\lbrack 0\rbrack\text{*Q}\lbrack 1\rbrack} \right)} \\{\text{Cq}\lbrack 2\rbrack\lbrack 2\rbrack = \text{Q}\lbrack 0\rbrack\text{*Q}\lbrack 0\rbrack\text{-Q}\lbrack 1\rbrack\text{*Q}\lbrack 1\rbrack\text{-Q}\lbrack 2\rbrack\text{*Q}\lbrack 2\rbrack\text{+Q}\lbrack 3\rbrack\text{*Q}\lbrack 3\rbrack} \\\text{Z4=Cq*Z3}\end{array} & \text{­­­[Formula 19]}\end{matrix}$

The pitch equilibrium angle can be calculated according to the following[Formula 20]. [Formula 20] includes a plurality of mathematical formulaeand operation processes in that regard.

$\begin{matrix}{\text{Vcross=cross\_product}\left( \text{Z, Z4} \right)} & \text{­­­[Formula 20]}\end{matrix}$

Here, Vcross=[Vcross[0], Vcross[1], Vcross[2]] may refer, for example,to the cross product of Z and Z4.

-   if(Vcross[0]>=0)-   pitch_hand = asin(|Vcross| / |Z41 )-   else-   pitch_hand = -1.0*asin(|Vcross| / |Z41)

When the roll equilibrium angle and the pitch equilibrium angle arecalculated according to the [Formula 17] and the [Formula 20], themanipulator may perform hand balancing by rotating the two motorscorresponding to the hand as much as the roll equilibrium angle and thepitch equilibrium angle.

FIG. 12 is a flowchart illustrating an example process wherein aplurality of users control a manipulator according to variousembodiments.

Embodiments regarding the process of obtaining input values of motorscorresponding to the upper arm and the fore arm, and the hand balancingprocess as described above with reference to FIG. 1 to FIG. 11 can alsobe applied to a case wherein a plurality of users control onemanipulator remotely.

Referring to FIG. 12 , the manipulator may receive an instruction forstopping an operation of a first user while the manipulator is operatingin operation S1210. When the instruction for stopping an operation ofthe first user is received, the manipulator may inactivate an externalsensor for recognizing the posture of the first user’s arm in operationS1220, and stop the operation of the manipulator in operation S1230.

For example, the manipulator may inactivate the external sensor bytransmitting a control signal for inactivating the external sensor tothe external sensor. Even if a sensing value is received from theexternal sensor after the instruction for stopping an operation, themanipulator may stop the operation of the manipulator by a method likenot controlling the operation of the manipulator, etc. based on thereceived sensing value.

When an instruction for initiating an operation of a second user forcontrolling the manipulator is received in operation S1240, themanipulator may transmit information on a guide screen for compensatinga difference between the posture of the manipulator and the posture ofthe second user’s arm to the user terminal of the second user inoperation S1250.

For example, the manipulator may transmit information on the guidescreen to the user terminal of the second user, and thereby make theinformation displayed on the display of the user terminal of the seconduser.

The guide screen may include information on the posture of themanipulator according to the last posture of the first user’s arm andinformation on the current posture of the second user’s arm, andaccordingly, the second user may change the posture of his arm to makethe posture of his arm coincide with the posture of the manipulatoraccording to the last posture of the first user’s arm.

If it is identified that the difference between the posture of themanipulator and the posture of the second user’s arm is within athreshold range in operation S1260-Y, the manipulator may control theoperation of the manipulator based on the posture of the second user’sarm in operation S1270. The manipulator may continuously or periodicallyidentify whether the difference between the posture of the manipulatorand the posture of the second user’s arm is within the threshold rangeuntil it is identified that the difference between the posture of themanipulator and the posture of the second user’s arm is within thethreshold range in operation S1260-N.

Accordingly, in the case of the manipulator according to the disclosure,even when a plurality of users control the manipulator remotely, theplurality of users can understand the situation regarding the movementof the manipulator fast and attempt a proper control intuitively, andaccordingly, the manipulator can be operated stably while continuityamong the operations of the plurality of users is guaranteed. Theexample illustrated in FIG. 12 can also be applied to a case wherein oneuser controls manipulators located in several places.

FIG. 13 is a flowchart illustrating an example process of controlling arepeating operation of a manipulator according to various embodiments.

Embodiments regarding the process of obtaining input values of motorscorresponding to the upper arm and the fore arm, and the hand balancingprocess as described above with reference to FIG. 1 to FIG. 11 can alsobe applied to a process wherein the manipulator performs a specificoperation repetitively.

The manipulator may receive an instruction for initiating a repeatingoperation of a user in operation S1310. When the instruction forinitiating a repeating operation of the user is received, themanipulator may control the operation of the manipulator based on theposture of the user’s arm in operation S1320.

If an instruction for stopping the repeating operation of the user isreceived in operation S1330, the manipulator may store a control signalcorresponding to the operation of the manipulator from the time pointwhen the instruction for initiating the repeating operation was receivedto the time point when the instruction for stopping the repeatingoperation was received in operation S1340.

When the control signal corresponding to the operation of themanipulator is stored, the manipulator may transmit information for themaximum operating speeds of the respective motors of the manipulatorcorresponding to the control signal to the user terminal of the user inoperation S1350. For example, the manipulator may transmit informationfor the maximum operating speeds of the respective motors of themanipulator corresponding to the control signal to the user’s terminal,and thereby make the information displayed on the display of the user’sterminal.

When a user input for setting the operating speed of the manipulatorbased on the information for the maximum operating speeds is received inoperation S1360, the manipulator may control the manipulator based onthe set operating speed in operation S1370.

For example, a user can designate the repeating speed of the manipulatorwithin the maximum allowed torque ranges of the respective motorsdepending on needs, and accordingly, the user’s work efficiency can benoticeably improved.

The various example embodiments described above may be implemented in anon-transitory recording medium that can be read by a computer or anapparatus similar to a computer, using software, hardware, or acombination thereof. In some cases, the embodiments described in thisdisclosure may be implemented as a processor itself. According toimplementation by software, the embodiments such as procedures andfunctions described in this disclousre may be implemented as separatesoftware modules. Each of the software modules can perform one or morefunctions and operations described in this disclosure.

Computer instructions for performing processing operations according tothe aforementioned various embodiments of the disclosure may be storedin a non-transitory computer-readable medium. Computer instructionsstored in such a non-transitory computer-readable medium may make theprocessing operations according to the aforementioned variousembodiments performed by a specific machine, when the instructions areexecuted by the processor of the specific machine.

A non-transitory computer-readable medium may refer, for example, to amedium that stores data semi-permanently, and is readable by machines.As examples of a non-transitory computer-readable medium, there may be aCD, a DVD, a hard disc, a blue-ray disc, a USB, a memory card, a ROM andthe like.

While the disclosure has been illustrated and described with referenceto various example embodiments, it will be understood that the variousexample embodiments are intended to be illustrative, not limiting. Itwill be further understood by those skilled in the art, that variousmodifications may be made, without departing from the true spirit andfull scope of the disclosure, incluidng the appended claims and theirequivalents. It will also be understood that any of the embodiment(s)described herein may be used in conjunction with any other embodiment(s)described herein.

What is claimed is:
 1. A manipulator comprising: a plurality of linksrespectively corresponding to a user’s upper arm, fore arm, and hand; aplurality of motors configured to rotate the plurality of links; acommunication interface comprising communication circuitry; a memorystoring at least one instruction; and a processor configured to executethe at least one instruction, wherein the processor is configured to:based on first rotation angle information for motors corresponding tothe upper arm and the fore arm among the plurality of motors, obtaininformation for a body frame of a link corresponding to the fore arm,obtain equilibrium angle information positioning the body frame inequilibrium with a specified reference frame, based on receiving asensing value indicating the posture of the hand from an external sensorthrough the communication interface, obtain second rotation angleinformation for motors corresponding to the hand among the plurality ofmotors based on the sensing value and the equilibrium angle information,and control the motors corresponding to the hand based on the secondrotation angle information.
 2. The manipulator of claim 1, wherein theprocessor is configured to: calculate a frame conversion matrix forconverting the first rotation angle information into a sensing valueindicating the posture of the upper arm and the posture of the fore arm,and obtain information for the body frame corresponding to the fore armbased on the frame conversion matrix.
 3. The manipulator of claim 1,wherein the equilibrium angle information includes roll equilibriumangle information and pitch equilibrium angle information, and the rollequilibrium angle information indicates an angle that positions a secondaxis of the body frame parallel to an xy plane of the reference framebased on rotating around the body frame based on a first axis of thebody frame.
 4. The manipulator of claim 3, wherein the pitch equilibriumangle information indicates an angle that positions a third axis of thebody frame to coincide with a z axis of the reference frame based onrotating around the body frame based on the second axis of the bodyframe rotated according to the roll equilibrium angle information. 5.The manipulator of claim 4, wherein the processor is configured to:obtain third rotation angle information for the motors corresponding tothe hand based on the sensing value indicating the posture of the hand,and obtain the second rotation angle information by compensating thethird rotation angle information based on the equilibrium angleinformation.
 6. The manipulator of claim 5, wherein the plurality oflinks include a first link corresponding to the upper arm, a second linkcorresponding to the fore arm, and a third link corresponding to thehand, and the plurality of motors include a first motor configured torotate the first link based on the first axis, a second motor configuredto rotate the first link based on the second axis, a third motorconfigured to rotate the second link based on the first axis, a fourthmotor configured to rotate the second link based on the third axis, afifth motor configured to rotate the third link based on the first axis,and a sixth motor configured to rotate the third link based on thesecond axis.
 7. The manipulator of claim 1, wherein the processor isconfigured to: based on receiving an instruction for stopping anoperation of a first user while the manipulator is operating, inactivatean external sensor for recognizing the posture of the first user’s arm,and stop the operation of the manipulator, based on receiving aninstruction for initiating an operation of a second user for controllingthe manipulator, control the communication interface to transmitinformation on a guide screen for compensating a difference between theposture of the manipulator and the posture of the second user’s arm tothe user terminal of the second user, and based on identifying adifference between the posture of the manipulator and the posture of thesecond user’s arm being within a specified threshold range, control theplurality of motors based on the posture of the second user’s arm. 8.The manipulator of claim 1, wherein the processor is configured to:based on receiving an instruction for initiating a repeating operationof the user, control the plurality of motors based on the posture of theuser’s arm, based on receiving an instruction for stopping the repeatingoperation of the user, store a control signal corresponding to theoperation of the manipulator from the time point when the instructionfor initiating the repeating operation was received to a time point whenthe instruction for stopping the repeating operation was received in thememory, based on the control signal being stored, control thecommunication interface to transmit information for the maximumoperating speeds of the plurality of respective motors corresponding tothe control signal to the user terminal of the user, and based onreceiving an input for setting the operating speed of the manipulatorbased on the information for the maximum operating speeds, control theplurality of motors based on the set operating speed.
 9. A method forcontrolling a manipulator including a plurality of links respectivelycorresponding to a user’s upper arm, fore arm, and hand, and a pluralityof motors rotating the plurality of links, the method comprising: basedon first rotation angle information for motors corresponding to theupper arm and the fore arm among the plurality of motors, obtaininginformation for a body frame of a link corresponding to the fore arm;obtaining equilibrium angle information that positions the body frame inequilibrium with a specified reference frame; based on receiving asensing value indicating the posture of the hand from an externalsensor, obtaining second rotation angle information for motorscorresponding to the hand among the plurality of motors based on thesensing value and the equilibrium angle information; and controlling themotors corresponding to the hand based on the second rotation angleinformation.
 10. The method of claim 9, wherein the obtaininginformation for the body frame comprises: calculating a frame conversionmatrix for converting the first rotation angle information into asensing value indicating the posture of the upper arm and the posture ofthe fore arm; and obtaining information for the body frame correspondingto the fore arm based on the frame conversion matrix.
 11. The method ofclaim 9, wherein the equilibrium angle information includes rollequilibrium angle information and pitch equilibrium angle information,and the roll equilibrium angle information indicates an angle thatpositions a second axis of the body frame parallel to an xy plane of thereference frame based on rotating around the body frame based on a firstaxis of the body frame.
 12. The method of claim 11, wherein the pitchequilibrium angle information indicates an angle that positions a thirdaxis of the body frame to coincide with a z axis of the reference framebased on rotating around the body frame based on the second axis of thebody frame rotated according to the roll equilibrium angle information.13. The method of claim 12, wherein the obtaining the second rotationangle information comprises: obtaining third rotation angle informationfor the motors corresponding to the hand based on the sensing valueindicating the posture of the hand; and obtaining the second rotationangle information by compensating the third rotation angle informationbased on the equilibrium angle information.
 14. The method of claim 13,wherein the plurality of links include a first link corresponding to theupper arm, a second link corresponding to the fore arm, and a third linkcorresponding to the hand, and the plurality of motors include a firstmotor configured to rotate the first link based on the first axis, asecond motor configured to rotate the first link based on the secondaxis, a third motor configured to rotate the second link based on thefirst axis, a fourth motor configured to rotate the second link based onthe third axis, a fifth motor configured to rotate the third link basedon the first axis, and a sixth motor configured to rotate the third linkbased on the second axis.
 15. A manipulator comprising: a plurality oflinks including a first link and a second link; a plurality of motorsconfigured to rotate the plurality of links; a communication interfaceincluding a circuit; a memory storing at least one instruction; and aprocessor, wherein the processor is configured to: receive a sensingvalue of an external sensor for detecting a posture of a user’s armthrough the communication interface, obtain a second vectorcorresponding to the posture of the user’s arm based on a matrixobtained based on the sensing value and a first vector prestored in thememory, obtain posture information of the user’s arm based on the secondvector, and control driving of the plurality of motors based on theposture information of the user’s arm, and the processor is furtherconfigured to: obtain a third vector corresponding to the first linkbased on a sensing value of a first external sensor, obtain a fourthvector corresponding to the second link based on a sensing value of asecond external sensor, obtain posture information corresponding to thesecond link based on the third vector and the fourth vector, and controldriving of the plurality of motors corresponding to the second linkbased on the posture information corresponding to the second link.